A compiler is a computer program (or set of programs) that transforms source code written in a computer language into another computer language (the target language, often having a binary form known as object code) in order to create an executable program. A compiler is likely to perform many or all of the following operations: lexical analysis, preprocessing, parsing, semantic analysis, code generation, and code optimization. In programming, asynchronous events are those occurring independently of the main program flow. Asynchronous actions are actions executed in a non-blocking scheme, which allow other events in the main program flow to continue processing while the asynchronous actions are completed.